/*
 * @Author: your name
 * @Date: 2021-12-03 13:38:35
 * @LastEditTime: 2021-12-03 22:09:22
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \协同编辑\vurd_serve\app.js
 */
var WebSocketServer = require("ws").Server;
wss = new WebSocketServer({ port: 8181 }); //8181 与前端相对应
wss.broadcast = function(msg) {
    //wss.clients ---表示目前连接这个websocket的用户组成的数组;
    wss.clients.forEach(function each(client) {
        //send 方法---表示---去给每一个用户发送最新更新的数据;
        client.send(msg);
    });
};

//成功建立链接时候执行的方法;
wss.on("connection", function(ws) {
    //建立连接成功广播一次当前在线人数
    //接收前端发送过来的数据 ------message
    ws.on("message", function(e) {
        var resData = JSON.parse(e);
        console.log(resData);
        const { text, tag, value, classify } = resData;
        //console.log('接收到来自clent的消息：' + resData.msg)
        // chatList = resData.chat; //每次发送信息，都会把信息存起来，然后通过广播传递出去，这样此每次进来的用户就能看到之前的数据
        wss.broadcast(
            JSON.stringify({
                text,
                tag,
                value,
                classify,
            })
        ); //每次发送都相当于广播一次消息
    });
    ws.on("close", function(e) {
        wss.broadcast(JSON.stringify({ text, tag, value, classify })); //
    });
});
console.log("服务器创建成功");